package src.com.zuiacsn;

import src.com.test.Student;

public class Demo1 {
    /*
      什么是反射?
        反射就是 : 加载类,并允许以编程的方式剖析类中的各种成分

      反射学什么?
        学习获取类的信息,操作它们

    * */
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
        /*
        * 1. 加载类,获取类的字节码Class对象
        * 方式
        * 1.Class c1 = 类名.class
        * 2.调用Class提供的方法: public static Class forName(String Package);
        * 3.Object提供的方法: public Class getClass();
        *                   Class c3 = 对象.getClass();
        * */

        // 1
        Class<Student> s1 = Student.class;
        System.out.println(s1);

        // 2
        Class<?> s2 = Class.forName("src.com.test.Student");
        System.out.println(s2.getName());// 全类名
        System.out.println(s2.getSimpleName());// 简名(类名)

        // 3
        /*Student stu = new Student();
        Class<? extends Student> s3 = stu.getClass();
        System.out.println(s3);*/

    }
}
